const app = getApp()
Page({
  data: {
    nickName: '',
    avatar: '',
  },
  onLoad() {
    console.log(app.userProfile)
    this.setData({
      ...app.userProfile,
    })
  },
  // 获取用户昵称
  getUserNickname(ev) {
    this.setNickname(ev.detail.value)
  },
  // 获取用户头像
  getUserAvatar(ev) {
    console.log(ev.detail.avatarUrl)
    this.setAvatar(ev.detail.avatarUrl)
  },
  // 更新用户头像
  async setAvatar(avatar) {
    const {
      code,
      data: { url },
    } = await wx.http.upload('/upload', {
      name: 'file', // 文件的 key
      filePath: avatar, // 文件的 value - 临时图片地址
      formData: {
        type: 'avatar',
      }, // // HTTP 请求中其他额外的 form data
    })
    if (code !== 10000) return wx.utils.toast('上传头像失败...')
    // 头像更新完成, 立刻能看到效果
    this.setData({
      avatar: url,
    })
    // 更新应用实例中的数据
    app.userProfile.avatar = url

    // 1. 获取页面栈
    const pageStack = getCurrentPages()
    // 2. 获取上一个页面的实例
    const prevPage = pageStack[pageStack.length - 2]
    // 3. 更新上一个页面实例中的data数据
    prevPage.setData({
      avatar: url,
    })
  },
  // 更新用户昵称
  async setNickname(nickName) {
    if (nickName === '') return
    const { data, code } = await wx.http.put('/userInfo', { nickName })
    if (code !== 10000) return wx.utils.toast('更新昵称失败...')
    // 更新我的页面 - 用户昵称

    // 更新应用实例中的数据
    app.userProfile.nickName = nickName
    // 1. 获取页面栈
    const pageStack = getCurrentPages()
    console.log(pageStack)
    // 2. 获取上一个页面的实例

    // 返回上一页的同时 - 不会修改昵称
    if (pageStack.length === 1) return
    const prevPage = pageStack[pageStack.length - 2]
    // console.log(prevPage)

    // 返回上一页的同时 - 昵称的修改
    // let prevPage
    // if (pageStack.length === 1) {
    //   prevPage = pageStack[0]
    // } else {
    //   prevPage = pageStack[pageStack.length - 2]
    // }

    // console.log(prevPage)
    // 3. 更新上一个页面实例中的data数据
    prevPage.setData({
      nickName,
    })
  },
})
